Blog

Introducing: The Ortus ORM Extension

Michael Born June 06, 2023

Spread the word

Michael Born

June 06, 2023

Spread the word


Share your thoughts

Introducing: The Ortus ORM Extension

We are excited to announce the Ortus ORM Extension, a new effort to improve the CFML ecosystem by modernizing Hibernate ORM support on the Lucee CFML server. The Ortus ORM extension is an open-source fork of the Lucee Hibernate extension and is a leap forward in modernizing native support for the Hibernate ORM engine in (Lucee) CFML applications. It also is another addition to our professional open-source offerings, so this extension will be professionally supported under any of our support plans and can also be supported by the community via our Patreon program.

Documentation

The Ortus ORM Extension will be fully documented, and we are excited to announce that a new documentation book is available at https://orm-extension.ortusbooks.com/. We hope that this resource will help developers get up and running with the extension, as well as provide a comprehensive reference for those looking to dig deeper into the extension's capabilities and Hibernate itself. We highly encourage the community to send us pull requests and make this extension a community initiative.

New Features and Fixes

  • Dramatic improvements in initialization performance
  • Cuts ORM reload time by 60% via ormReload()
  • autoGenMap=false support
    • enables .hbm.xml mapping configurations
    • improves ORM load/reload speed
  • Upgraded dom4j library from 1.6.1 to 2.1.4. This removes two potential vulnerabilities in dom4j's XML parsing capabilities.
  • A modern Maven build for faster and reusable development workflows
  • Auto-generated Java API docs

In addition to these improvements, we've also resolved several bug fixes:

  • ORM events not firing (LDEV-4308)
  • Session close on transaction end (LDEV-4017)
  • "length" not used on varchar fields (LDEV-4150)
  • Entity changes made in onPreInsert() and onPreUpdate() do not persist OOE-2

Installation

You can install this extension into a preconfigured Lucee server via Commandbox:

box install D062D72F-F8A2-46F0-8CBC91325B2F067B

This will not work unless box server start has first been run to set up the Lucee engine, specifically the deploy/ directory used for installing extensions. Use server start --dryRun to initialize the Lucee engine without starting the server:

box
box> server start --dryRun
box> install D062D72F-F8A2-46F0-8CBC91325B2F067B
box> server start

Or, if you choose, you can install the ORM extension from the Lucee server admin page like any other Lucee extension.

FAQs

Will the ORM Extension Stay Open Source?

Yes. The ORM Extension is licensed under the Lesser GPL license and will remain open-source. You can find the source code here: https://github.com/Ortus-Solutions/extension-hibernate. The difference is that the extension is now professionally supported with custom builds available if part of the support programs.

Where can I get Support?

There are several avenues of support for this extension:

  1. Community Support
    1. Ortus Community: https://community.ortussolutions.com/c/lucee-extensions/ortus-orm-extension/40
    2. Box Team Slack: https://boxteam.ortussolutions.com
  2. Professional Support
    1. https://www.ortussolutions.com/services/support

Why Did You Fork the Lucee Hibernate Extension?

While the LAS team has done a marvelous job of bringing Hibernate support to the Lucee server for years, we understand that it’s not their main focus of attention. For us, it’s a core reliance for many of our products and SaaS offerings. Thus, we wanted to iterate faster, server our client's needs promptly, and modernize it according to our immediate product needs. This way, the LAS team can focus on the core CFML engine, and we can focus on our core competencies and strengths.

Contribute

If you are excited about the ORM extension, please install, test it out, and send us a comment... or a bug ticket. 😃

Add Your Comment

Recent Entries

12 Days of BoxLang - Day 4: TestBox

12 Days of BoxLang - Day 4: TestBox

Today we’re celebrating one of the most exciting new additions to the BoxLang ecosystem:

the TestBox BoxLang CLI Runner — a fast, native way to run your TestBox tests directly through the BoxLang Runtime. ⚡

No server required. No CommandBox needed. Just pure, ultra-fast BoxLang-powered testing from the command lineon Windows, Mac, and Linux.

If you’re building modern applications with BoxLang — web apps, CLIs, serverless functions, Android apps, or OS-level utilities — this new feature gives you a unified, flexible testing workflow you can run anywhere.

Victor Campos
Victor Campos
December 13, 2025
12 days of BoxLang - Day 3: SocketBox!

12 days of BoxLang - Day 3: SocketBox!

As BoxLang continues evolving into a modern, high-performance, JVM-based runtime, real-time communication becomes essential for the applications we all want to build: dashboards, collaboration tools, notifications, live feeds, multiplayer features, and more.

That’s where SocketBox steps in — the WebSocket upgrade listener built to work seamlessly with CommandBox and the BoxLang MiniServer. ⚡

Today, for Day 3, we’re highlighting how SocketBox supercharges BoxLang development by giving you fast, flexible, and framework-agnostic WebSocket capabilities.

Maria Jose Herrera
Maria Jose Herrera
December 12, 2025
12 Days of BoxLang - Day 2: CommandBox

12 Days of BoxLang - Day 2: CommandBox

BoxLang + CommandBox: The Enterprise Engine Behind Your Deployments

For Day 2 of our 12 Days of Christmas series, we’re diving into one of the most powerful parts of the BoxLang ecosystem: CommandBox the defacto enterprise servlet deployment platform for BoxLang.

If BoxLang is the language powering your applications, CommandBox is the engine room behind it all. ⚙️

Victor Campos
Victor Campos
December 11, 2025